package com.demo.xmtx.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum GisEnum {
    POINT(0, "点"),
    LINE(1, "线"),
    SURFACE(2, "面");
    // 自动枚举映射 第一种方式 ，标记数据库存的值是code
    @EnumValue
    private final int code;
    private final String name;

    public int getCode() {
        return code;
    }

    public String getName() {
        return name;
    }

    // 通过 code 获取枚举实例
    public static GisEnum fromCode(int code) {
        for (GisEnum type : GisEnum.values()) {
            if (type.getCode() == code) {
                return type;
            }
        }
        throw new IllegalArgumentException("未知的类型 : " + code);
    }

    // 通过 code 获取表名
    public static String getTableNameByCode(int code) {
        GisEnum type = fromCode(code);
        return type.getName();
    }
}
